home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 April: Mac OS SDK / Dev.CD Apr 97 SDK1.toast / Development Kits (Disc 1) / AppleShare API / UGLibrary / UGLibrary.p < prev   
Encoding:
Text File  |  1992-05-19  |  5.4 KB  |  221 lines  |  [TEXT/MPS ]

  1. {                                                            }
  2. {    Created: Sunday, December 9, 1991 at 9:55 PM            }
  3. {    Modified: Saturday, January 18, 1992 at 9:44 PM            }
  4. {    UGLibrary.p                                                }
  5. {    Pascal Interface to UGLibrary.o                            }
  6. {    The library to manipulate the Users & Groups Data File    }
  7. {                                                            }
  8. {        Copyright Apple Computer, Inc. 1991                    }
  9. {        All rights reserved                                    }
  10. {                                                            }
  11.  
  12. UNIT UGLibrary;
  13.  
  14. INTERFACE
  15.  
  16. USES
  17.     OSUtils;
  18.  
  19. CONST
  20.     { error codes for the UGLibrary }
  21.     ugUserAlreadyExists = 1;
  22.     ugGroupAlreadyExists = 2;
  23.     ugULInfoRecNotCreated = 3;
  24.     ugNoMoreUGs = 4;
  25.     ugUserNotFound = 5;
  26.     ugGroupNotFound = 6;
  27.     ugNotAUser = 7;
  28.     ugNotAGroup = 8;
  29.     ugTooManyGroups = 9;
  30.     ugNotaMember = 10;
  31.     ugNoMoreUsers = 11;
  32.     ugNoMoreGroups = 12;
  33.     ugBadParamErr = 13;
  34.     ugUserAlreadyAMember = 14;
  35.     ugAPrmryGroupExists = 15;
  36.     ugServerRunning = 16;
  37.     ugAdminRunning = 17;
  38.     ugNotBtree = 18;
  39.     ugBadKey = 19;
  40.     ugDskFull = 20;
  41.     ugBadUID = 21;
  42.     ugInvalidPasswd = 22;
  43.     ugEOF = 23;
  44.     ugBOF = 24;
  45.     ugDefNameErr = 98;
  46.     ugFatalError = 99;
  47.  
  48.     { ugUserFlags for UGNewUser, UGGetUserInfo, and UGSetUserInfo }
  49.     IACEnabled = $0001;
  50.     LoginEnabled = $0100;
  51.     SuperUser = $0200;
  52.     NoChangePwd = $0400;
  53.     GetNewPwd = $1000;
  54.  
  55.     { ugSrvrFlags[0] for UGGetULInfo and UGSetULInfo }
  56.     Apple2 = 1;
  57.     NoGuests = 2;
  58.     IACGuestEnabled = 16;
  59.     IACGlobalEnabled = 32;
  60.  
  61.     { ugSrvrFlags[1] for UGGetULInfo and UGSetULInfo }
  62.     DontSavePwd = 1;
  63.  
  64.     { ugChngFlags codes for UGSetUserInfo }
  65.     ChngUserFlags = 1;
  66.     ChngUserPasswd = 2;
  67.     ChngUAll = 3;
  68.  
  69.     { ugChngFlags codes for UGSetULInfo }
  70.     ChngSrvrFlags = 1;
  71.     ChngAdmnKey = 2;
  72.     ChngMinPwdLen = 4;
  73.     ChngMaxBadLogins = 8;
  74.     ChngPwdExpDate = 16;
  75.     ChngULAll = 31;
  76.     
  77.     { server version as returned by UGGetULInfo }
  78.     Sys7SrvrVer = 3;
  79.     AS3SrvrVer = 4;
  80.  
  81. TYPE
  82.     Str199 = STRING[199];
  83.     Str8 = STRING[8];
  84.  
  85.     { These are the Param Blocks for the interface calls: }
  86.  
  87.     { Use UGFilePB for UGOpenFile, UGCloseFile and UGCreateFile }
  88.     UGFilePB = RECORD
  89.             qLink: QElemPtr;
  90.             qType: INTEGER;
  91.             ugTrap: INTEGER;
  92.             ugCmdAddr: Ptr;
  93.             ugCompletion: ProcPtr;
  94.             ugResult: OSErr;
  95.             ugNamePtr: StringPtr;
  96.             ugVRefNum: INTEGER;
  97.             ugRefNum: INTEGER;
  98.             ugDirID: LONGINT;
  99.             ugAccessID: LONGINT;
  100.             ugUserID: LONGINT;
  101.             ugGroupID: LONGINT;
  102.             ugAdminKey: StringPtr;
  103.         END;
  104.  
  105.     { Use UGUserPB for UGNewUser, UGDeleteUser, UGRenameUser, UGGetUserInfo, }
  106.     { UGSetUserInfo, and UGAuthenticateUser }
  107.     UGUserPB = RECORD
  108.             qLink: QElemPtr;
  109.             qType: INTEGER;
  110.             ugTrap: INTEGER;
  111.             ugCmdAddr: Ptr;
  112.             ugCompletion: ProcPtr;
  113.             ugResult: OSErr;
  114.             ugNamePtr: StringPtr;
  115.             ugVRefNum: INTEGER;
  116.             ugRefNum: INTEGER;
  117.             ugDirID: LONGINT;
  118.             ugAccessID: LONGINT;
  119.             ugUserID: LONGINT;
  120.             ugGroupID: LONGINT;
  121.             ugPosOffset: INTEGER;
  122.             ugMisc: StringPtr;
  123.             ugChngFlags: INTEGER;
  124.             ugPassword: StringPtr;
  125.             ugUserFlags: LONGINT;
  126.             ugNumBadLogins: INTEGER;
  127.             ugPwdDate: LONGINT;
  128.             ugNumGroups: INTEGER;
  129.             ugGroups: ARRAY[0..41] OF LONGINT;
  130.         END;
  131.  
  132.     { Use UGGroupPB for UGNewGroup, UGDeleteGroup, UGRenameGroup, UGGetGroupInfo, }
  133.     { UGAssignUserToGroup, and UGDeleteUserFromGroup }
  134.     UGGroupPB = RECORD
  135.             qLink: QElemPtr;
  136.             qType: INTEGER;
  137.             ugTrap: INTEGER;
  138.             ugCmdAddr: Ptr;
  139.             ugCompletion: ProcPtr;
  140.             ugResult: OSErr;
  141.             ugNamePtr: StringPtr;
  142.             ugVRefNum: INTEGER;
  143.             ugRefNum: INTEGER;
  144.             ugDirID: LONGINT;
  145.             ugAccessID: LONGINT;
  146.             ugUserID: LONGINT;
  147.             ugGroupID: LONGINT;
  148.             ugPosOffset: INTEGER;
  149.             ugMisc: StringPtr;
  150.             ugPrimaryFlag: Boolean;
  151.         END;
  152.  
  153.     { Use UGServerPB for UGGetULInfo and UGSetULInfo }
  154.     UGServerPB = RECORD
  155.             qLink: QElemPtr;
  156.             qType: INTEGER;
  157.             ugTrap: INTEGER;
  158.             ugCmdAddr: Ptr;
  159.             ugCompletion: ProcPtr;
  160.             ugResult: OSErr;
  161.             ugNamePtr: StringPtr;
  162.             ugVRefNum: INTEGER;
  163.             ugRefNum: INTEGER;
  164.             ugDirID: LONGINT;
  165.             ugAccessID: LONGINT;
  166.             ugUserID: LONGINT;
  167.             ugGroupID: LONGINT;
  168.             ugAdminKey: StringPtr;
  169.             ugSrvrVersion: INTEGER;
  170.             ugChngFlags: INTEGER;
  171.             ugSrvrFlags: ARRAY[0..1] OF LONGINT;
  172.             ugMinPwdLen: SignedByte;
  173.             filler1: SignedByte;
  174.             ugMaxBadLogins: INTEGER;
  175.             ugPwdExpDate: LONGINT;
  176.         END;
  177.  
  178.     UserGroupPBPtr = ^UGParamBlockRec;
  179.     UGParamBlockRec = RECORD
  180.             CASE Integer OF
  181.                 0: (
  182.                         ugFileParam: UGFilePB
  183.                 );
  184.                 1: (
  185.                         ugUserParam: UGUserPB
  186.                 );
  187.                 2: (
  188.                         ugGroupParam: UGGroupPB
  189.                 );
  190.                 3: (
  191.                         ugServerParam: UGServerPB
  192.                 );
  193.         END;
  194.  
  195.     { Declaration of functions }
  196.     
  197.     FUNCTION UGOpenFile (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
  198.     FUNCTION UGCloseFile (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
  199.     FUNCTION UGCreateFile (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
  200.     
  201.     FUNCTION UGNewUser (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
  202.     FUNCTION UGDeleteUser (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
  203.     FUNCTION UGRenameUser (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
  204.     FUNCTION UGGetUserInfo (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
  205.     FUNCTION UGSetUserInfo (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
  206.     FUNCTION UGAuthenticateUser (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
  207.     
  208.     FUNCTION UGNewGroup (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
  209.     FUNCTION UGDeleteGroup (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
  210.     FUNCTION UGRenameGroup (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
  211.     FUNCTION UGGetGroupInfo (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
  212.     
  213.     FUNCTION UGAssignUserToGroup (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
  214.     FUNCTION UGDeleteUserFromGroup (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
  215.     
  216.     FUNCTION UGGetULInfo (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
  217.     FUNCTION UGSetULInfo (thePB: UserGroupPBPtr; async: BOOLEAN): OSErr;
  218.  
  219. IMPLEMENTATION
  220.  
  221. END.